package com.wms.system.domain.entity.sale;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.wms.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

@Data
@TableName("sale_project_progress")
public class SaleProjectProgress {
    @TableId(type = IdType.AUTO)
    @TableField("id")
    @ApiModelProperty("id")
    private Long id;               // 主键ID

    @TableField("create_user_name")
    @ApiModelProperty("创建人名称")
    private String createUserName;

    @TableField("create_time")
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty("修改人名称")
    @TableField("update_user_name")
    private String updateUserName;

    @TableField("update_time")
    @ApiModelProperty("修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @ApiModelProperty("项目id")
    @TableField("project_id")
    private Long projectId;

    @ApiModelProperty("项目编号")
    @TableField(exist = false)
    @Excel(name = "项目编号")
    private String projectCode; // 项目编号：P202510001

    @ApiModelProperty("项目名称")
    @TableField(exist = false)
    @Excel(name = "项目名称")
    private String projectName; // 项目名称

    @TableField("project_start_date")
    @ApiModelProperty("立项日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "立项日期", dateFormat = "yyyy-MM-dd")
    private Date projectStartDate; // 立项日期

    @TableField("quotation_date")
    @ApiModelProperty("报价日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报价日期", dateFormat = "yyyy-MM-dd")
    private Date quotationDate;    // 报价日期

    @TableField("contract_date")
    @ApiModelProperty("合同签订日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同签订日期", dateFormat = "yyyy-MM-dd")
    private Date contractDate;     // 合同签订日期

    @TableField("delivery_date")
    @ApiModelProperty("发货日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货日期", dateFormat = "yyyy-MM-dd")
    private Date deliveryDate;     // 发货日期（实际发货时间）

    @TableField("acceptance_date")
    @ApiModelProperty("交付日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交付日期", dateFormat = "yyyy-MM-dd")
    private Date acceptanceDate;   // 交付日期（系统上线或设备到厂时间）

    @TableField("sign_off_date")
    @ApiModelProperty("验收日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "验收日期", dateFormat = "yyyy-MM-dd")
    private Date signOffDate;      // 验收日期（客户签字验收日期）

    @TableField("delay_reason")
    @ApiModelProperty("延误原因")
    @Excel(name = "延误原因")
    private String delayReason;    // 延误原因

    @TableField("project_progress")
    @ApiModelProperty("项目进度 0 立项中 1 报价中 2 合同签订 3 发货中 4 已交付 5 已验收 6 关闭")
    @Excel(name = "项目进度",readConverterExp = "0=立项中,1=报价中,2=合同签订,3=发货中,4=已交付,5=已验收,6=关闭")
    private String projectProgress; // 当前进度


}
